export default {
	/**
	 * 日期格式化
	 * @param {Object} date 要格式化的日期
	 * @param {Object} fmt 日期格式（yyyy-MM-dd）
	 */
	dateFormat(date, fmt) {

		var time;
		if (!date) return "";
		if (typeof date === 'string') {
			time = new Date(date.replace(/-/g, '/').replace(/T|Z/g, ' ').trim().substr(0, 19));
		} else if (typeof date === 'object') {
			time = new Date(date);
		}

		let o = {
			'M+': time.getMonth() + 1, // 月份
			'd+': time.getDate(), // 日
			'H+': time.getHours(), // 小时
			'm+': time.getMinutes(), // 分
			's+': time.getSeconds(), // 秒
			'S': time.getMilliseconds() // 毫秒
		}
		if (/(y+)/.test(fmt)) {
			fmt = fmt.replace(RegExp.$1, (time.getFullYear() + '').substr(4 - RegExp.$1.length))
		}
		for (var k in o) {
			if (new RegExp('(' + k + ')').test(fmt)) {
				fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k])
					.length)))
			}
		}

		return fmt
	},
	/**
	 * 数字格式化
	 * @param {Object} number 要格式化的数字
	 * @param {Object} digits 保留几位小数
	 */
	numberFormat(number, digits) {
		const si = [{
				value: 1E18,
				symbol: 'E'
			},
			{
				value: 1E15,
				symbol: 'P'
			},
			{
				value: 1E12,
				symbol: 'T'
			},
			{
				value: 1E9,
				symbol: 'G'
			},
			{
				value: 1E6,
				symbol: 'M'
			},
			{
				value: 1E3,
				symbol: 'k'
			}
		]
		for (let i = 0; i < si.length; i++) {
			if (number >= si[i].value) {
				return (number / si[i].value + 0.1).toFixed(digits).replace(/\.0+$|(\.[0-9]*[1-9])0+$/, '$1') + si[i]
					.symbol
			}
		}
		return number.toString()
	},
	/**
	 * 金额格式化
	 * @param {Object} number 要格式化的数字
	 * @param {Object} flag 货币符号
	 * @param {Object} decimals 保留几位小数
	 * @param {Object} dec_point 小数点符号
	 * @param {Object} thousands_sep 千分位符号
	 */
	moneyFormat(number, flag, decimals, dec_point, thousands_sep) {
		if (!number) {

			var str = '';
			if (number == 0) {

				if (decimals == 0) {
					str = '0';
				} else {
					str = '0.00';
				}
				if (flag) {
					return flag + str;
				} else {
					return str;
				}
			} else {
				if (decimals == 0) {
					str = '0';
				} else {
					str = '0.00';
				}
				if (flag) {
					return flag + str;
				} else {
					return str;
				}
			}
		} else {

			if (decimals) {

				decimals = decimals > 0 && decimals <= 20 ? decimals : 2;
			} else if (decimals == 0) {
				decimals = 0;
			} else {
				decimals = 2;
			}

			number = (number + '').replace(/[^0-9+-Ee.]/g, '');
			var n = !isFinite(+number) ? 0 : +number,
				prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
				sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
				dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
				s = '',
				toFixedFix = function(n, prec) {
					var k = Math.pow(10, prec);
					var c = (n * k).toPrecision(16);
					return '' + Math.ceil(c) / k;
				};

			s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
			var re = /(-?\d+)(\d{3})/;
			while (re.test(s[0])) {
				s[0] = s[0].replace(re, "$1" + sep + "$2");
			}

			if ((s[1] || '').length < prec) {
				s[1] = s[1] || '';
				s[1] += new Array(prec - s[1].length + 1).join('0');
			}

			var returnStr = s.join(dec);

			if (returnStr == 0) {
				returnStr = '0.00';
			}
			if (flag) {
				returnStr = flag + returnStr;
			}
			return returnStr;
		}
	},
	showFile(url){
		
		if(!url){
			return;
		}
		else if(url && url.indexOf('https://thirdwx.qlogo.cn')>-1){ //微信头像
			return url
		}
		else if(url && url.indexOf('http://tmp/')>-1){ //本地图片
			return url
		}
		else if(url && url.indexOf('wxfile://')>-1){ //本地图片
			return url
		}
		else if(url && url.indexOf('_doc/')>-1){ //本地图片
			return url
		}
		else if(url && url.indexOf('http') == 0){
			
			return url;
		}
		return process.env.VUE_APP_BASE_URL + '/common/showFile?id=' + url;
	}
}
